<?xml version="1.0" encoding="utf-8" ?>
<CodeDoc>
	<Delegate name="DeserializeDockContent">
		<summary>
			Callback used by <see cref="Fireball.Docking.DockPanel.LoadFromXml"/>
			to get a instance of <see cref="Fireball.Docking.IDockContent"/> from a
			serialized string.
		</summary>
		<param name="persistString">
			The serialized string of the <see cref="Fireball.Docking.IDockContent"/> object.
		</param>
		<returns>
			The <see cref="Fireball.Docking.IDockContent"/> object.
		</returns>
		<remarks>
			<para>
				The layout of <see cref="Fireball.Docking.DockPanel"/>
				can be saved to and loaded from XML data by calling
				<see cref="Fireball.Docking.DockPanel.SaveAsXml"/> and
				<see cref="Fireball.Docking.DockPanel.LoadFromXml"/>.
				When saving, the system will persist the <see cref="Fireball.Docking.IDockContent"/>
				object to a string by calling its 
				<see cref="Fireball.Docking.DockContentHandler.GetPersistStringDelegate"/> property;
				when loading, the system will call the <see cref="Fireball.Docking.DeserializeDockContent"/>
				call back to get the instance of <see cref="Fireball.Docking.IDockContent"/> object.
			</para>
			<para>
				If you derive your class from <see cref="Fireball.Docking.DockContent" />, the default implementation of <see cref="Fireball.Docking.DockContent.GetPersistString"/>
				returns the type name of the <see cref="Fireball.Docking.DockContent"/> class. You can overwrite
				this method for your own implementation.
			</para>
			<param>
				If you implement your own <see cref="Fireball.Docking.IDockContent" />, you can pass a
				delegate to the constructor of <see cref="Fireball.Docking.DockContentHandler" /> class,
				and provide this object for the interface implementation.
			</param>
			<para>
				You always need to provide a <see cref="Fireball.Docking.DeserializeDockContent"/>
				callback when loading the layout.
			</para>
		</remarks>
	</Delegate>
	<Delegate name="DockContentEventHandler">
		<summary>Represents the method that will handle the <see cref="Fireball.Docking.DockPanel.ContentAdded"/> or
		<see cref="Fireball.Docking.DockPanel.ContentRemoved"/> event of <see cref="Fireball.Docking.DockPanel" />.</summary>
		<param name="sender">The source of the event.</param>
		<param name="e">A <see cref="Fireball.Docking.DockContentEventArgs" /> that contains the event data.</param>
	</Delegate>
	<Class name="DockPanel">
		<ClassDef>
			<summary>Represents a control that acts as container for the docking windows.</summary>
			<remarks>The <see cref="Fireball.Docking.DockPanel"/> contains 5 <see cref="Fireball.Docking.DockWindow"/>: 
			top, bottom, left, right and document. It also displays tab strip for auto-hide window(s) if there is any.</remarks>
		</ClassDef>
		<Constructor name="()">
			<summary>Initializes a new instance of <see cref="Fireball.Docking.DockPanel"/> class.</summary>
		</Constructor>
		<Property name="ActiveAutoHideContent">
			<summary>Gets or sets the active auto-hide <see cref="Fireball.Docking.IDockContent"/>.</summary>
			<value>The auto-hide <see cref="Fireball.Docking.IDockContent"/> is currently active.</value>
		</Property>
		<Property name="ActiveContent">
			<summary>Gets the active <see cref="Fireball.Docking.IDockContent"/>.</summary>
			<value>The <see cref="Fireball.Docking.IDockContent"/> is currently active.</value>
		</Property>
		<Property name="ActiveDocument">
			<summary>Gets the active document <see cref="Fireball.Docking.IDockContent"/>.</summary>
			<value>The document <see cref="Fireball.Docking.IDockContent"/> is currently active.</value>
		</Property>
		<Property name="ActiveDocumentPane">
			<summary>Gets the active document <see cref="Fireball.Docking.DockPane"/>.</summary>
			<value>The document <see cref="Fireball.Docking.DockPane"/> is currently active.</value>
		</Property>
		<Property name="ActivePane">
			<summary>Gets the active <see cref="Fireball.Docking.DockPane"/>.</summary>
			<value>The <see cref="Fireball.Docking.DockPane"/> is currently active.</value>
		</Property>
		<Property name="AllowRedocking">
			<summary>Sets or gets a value indicating whether drag and drop redocking is allowed.</summary>
			<value><b>True</b>, if drag and drop redocking is allowed, otherwise, <b>false</b>.</value>
		</Property>
		<Property name="Contents">
			<summary>Gets the collection of contained <see cref="Fireball.Docking.IDockContent" /> forms.</summary>
			<value>The <see cref="Fireball.Docking.DockContentCollection" /> which contains all the
			<see cref="Fireball.Docking.IDockContent" /> forms for this <see cref="Fireball.Docking.DockPanel" />.</value>
			<remarks>A <see cref="Fireball.Docking.IDockContent" /> object is added to <see cref="Fireball.Docking.DockPanel.Contents" />
			collection by setting the value of its <see cref="Fireball.Docking.DockContentHandler.DockPanel" /> property.</remarks>
		</Property>
		<Property name="DockBottomPortion">
			<summary>Gets or sets the size of the bottom side <see cref="Fireball.Docking.DockWindow"/>.</summary>
			<value>A value between 0 and 1 to determine the size of the bottom side <see cref="Fireball.Docking.DockWindow"/>.</value>
		</Property>
		<Property name="DockLeftPortion">
			<summary>Gets or sets the size of the left side <see cref="Fireball.Docking.DockWindow"/>.</summary>
			<value>A value between 0 and 1 to determine the size of the left side <see cref="Fireball.Docking.DockWindow"/>.</value>
		</Property>
		<Property name="DockRightPortion">
			<summary>Gets or sets the size of the right side <see cref="Fireball.Docking.DockWindow"/>.</summary>
			<value>A value between 0 and 1 to determine the size of the right side <see cref="Fireball.Docking.DockWindow"/>.</value>
		</Property>
		<Property name="DockTopPortion">
			<summary>Gets or sets the size of the top side <see cref="Fireball.Docking.DockWindow"/>.</summary>
			<value>A value between 0 and 1 to determine the size of the top side <see cref="Fireball.Docking.DockWindow"/>.</value>
		</Property>
		<Property name="DockWindows">
			<summary>Gets the collection of contained <see cref="Fireball.Docking.DockWindow" /> controls.</summary>
			<value>The <see cref="Fireball.Docking.DockWindowCollection" /> which contains all the
			<see cref="Fireball.Docking.DockWindow" /> controls for this <see cref="Fireball.Docking.DockPanel" />.</value>
		</Property>
		<Property name="Extender">
			<summary>Gets the <see cref="DockPanelExtender"/> to customize the <see cref="DockPanel"/>.</summary>
			<value>A <see cref="DockPanelExtender"/> to customize the <see cref="DockPanel"/>.</value>
		</Property>
		<Property name="FloatWindows">
			<summary>Gets the collection of contained <see cref="Fireball.Docking.FloatWindow" /> forms.</summary>
			<value>The <see cref="Fireball.Docking.FloatWindowCollection" /> which contains all the
			<see cref="Fireball.Docking.FloatWindow" /> forms for this <see cref="Fireball.Docking.DockPanel" />.</value>
		</Property>
		<Property name="Panes">
			<summary>Gets the collection of contained <see cref="Fireball.Docking.DockPane" /> windows.</summary>
			<value>The <see cref="Fireball.Docking.DockPaneCollection" /> which contains all the
			<see cref="Fireball.Docking.DockPane" /> windows for this <see cref="Fireball.Docking.DockPanel" />.</value>
		</Property>
		<Property name="Documents">
			<summary>Gets the document <see cref="Fireball.Docking.IDockContent"/> forms.</summary>
			<value>An array of the document <see cref="Fireball.Docking.IDockContent"/> forms.</value>
		</Property>
		<Property name="ShowDocumentIcon">
			<summary>Gets or sets a value indicating whether the document tab will display the icon.</summary>
			<value><b>True</b> to display the document icon, otherwise, <b>false</b>.</value>
		</Property>
		<Method name="OnActiveContentChanged(EventArgs)">
			<summary>Raises the <see cref="Fireball.Docking.DockPanel.ActiveContentChanged" /> event.</summary>
			<param name="e">An <see cref="System.EventArgs" /> that contains the event data.</param>
		</Method>
		<Method name="OnActiveDocumentChanged(EventArgs)">
			<summary>Raises the <see cref="Fireball.Docking.DockPanel.ActiveDocumentChanged" /> event.</summary>
			<param name="e">An <see cref="System.EventArgs" /> that contains the event data.</param>
		</Method>
		<Method name="OnActivePaneChanged(EventArgs)">
			<summary>Raises the <see cref="Fireball.Docking.DockPanel.ActivePaneChanged" /> event.</summary>
			<param name="e">An <see cref="System.EventArgs" /> that contains the event data.</param>
		</Method>
		<Method name="OnContentAdded(DockContentEventArgs)">
			<summary>Raises the <see cref="Fireball.Docking.DockPanel.ContentAdded" /> event.</summary>
			<param name="e">An <see cref="Fireball.Docking.DockContentEventArgs" /> that contains the event data.</param>
		</Method>
		<Method name="OnContentRemoved(DockContentEventArgs)">
			<summary>Raises the <see cref="Fireball.Docking.DockPanel.ContentRemoved" /> event.</summary>
			<param name="e">An <see cref="Fireball.Docking.DockContentEventArgs" /> that contains the event data.</param>
		</Method>
		<Method name="SaveAsXml">
			<overloads>
				<summary>Save the layout to XML data. Overloaded.</summary>
				<remarks>
					<include file='DockPanel.xml' path='//CodeDoc/Delegate[@name="DeserializeDockContent"]/remarks/*'/>
				</remarks>
			</overloads>
		</Method>
		<Method name="SaveAsXml(string)">
			<summary>Save the layout to XML data, using the specified file.</summary>
			<param name="filename">The file name to write to. If the file exsists, it will truncate it and
			overwrite it with new content.</param>
			<remarks>
				<include file='DockPanel.xml' path='//CodeDoc/Delegate[@name="DeserializeDockContent"]/remarks/*'/>
			</remarks>
		</Method>
		<Method name="SaveAsXml(string, Encoding)">
			<summary>Save the layout to XML data, using the specified file and encoding.</summary>
			<param name="filename">The file name to write to. If the file exsists, it will truncate it and
			overwrite it with new content.</param>
			<param name="encoding">The encoding to generate.</param>
			<remarks>
				<include file='DockPanel.xml' path='//CodeDoc/Delegate[@name="DeserializeDockContent"]/remarks/*'/>
			</remarks>
		</Method>
		<Method name="SaveAsXml(Stream, Encoding)">
			<summary>Save the layout to XML data, using the specified stream and encoding.</summary>
			<param name="stream">The stream to which you want to write.</param>
			<param name="encoding">The encoding to generate.</param>
			<remarks>
				<include file='DockPanel.xml' path='//CodeDoc/Delegate[@name="DeserializeDockContent"]/remarks/*'/>
			</remarks>
		</Method>
		<Method name="SaveAsXml(Stream, Encoding, bool)">
			<summary>Save the layout to XML data, using the specified stream and encoding, optinally specify if
				the data will be contained inside another XML element.
			</summary>
			<param name="stream">The stream to which you want to write.</param>
			<param name="encoding">The encoding to generate.</param>
			<param name="upstream">Specifies if the data will be contained inside another XML element. If <b>True</b>, the
				stream will be flushed instead of closed; and the start and end element will not be written to the stream.
			</param>			
			<remarks>
				<include file='DockPanel.xml' path='//CodeDoc/Delegate[@name="DeserializeDockContent"]/remarks/*'/>
			</remarks>
		</Method>
		<Method name="LoadFromXml">
			<overloads>
				<summary>Load the layout from XML data. Overloaded</summary>
				<remarks>
					<include file='DockPanel.xml' path='//CodeDoc/Delegate[@name="DeserializeDockContent"]/remarks/*'/>
				</remarks>
			</overloads>
		</Method>
		<Method name="LoadFromXml(string, DeserializeDockContent)">
			<summary>Load the layout from XML file.</summary>
			<param name="filename">The file name to read XML data from.</param>
			<param name="deserializeContent">The callback function to get the
			<see cref="Fireball.Docking.IDockContent"/> instance from the persistent string.</param>
			<remarks>
				<include file='DockPanel.xml' path='//CodeDoc/Delegate[@name="DeserializeDockContent"]/remarks/*'/>
			</remarks>
		</Method>
		<Method name="LoadFromXml(Stream, DeserializeDockContent)">
			<summary>Load the layout from XML stream.</summary>
			<param name="stream">The stream to read XML data from.</param>
			<param name="deserializeContent">The callback function to get the
			<see cref="Fireball.Docking.IDockContent"/> instance from the persistent string.</param>
			<remarks>
				<include file='DockPanel.xml' path='//CodeDoc/Delegate[@name="DeserializeDockContent"]/remarks/*'/>
			</remarks>
		</Method>
		<Method name="LoadFromXml(Stream, DeserializeDockContent, bool)">
			<summary>Load the layout from XML stream, optionally specifies if the provided stream will be closed after loading.</summary>
			<param name="stream">The stream to read XML data from.</param>
			<param name="deserializeContent">The callback function to get the
			<see cref="Fireball.Docking.IDockContent"/> instance from the persistent string.</param>
			<param name="closeStream">Specifies if the provided stream will be closed after loading.</param>
			<remarks>
				<include file='DockPanel.xml' path='//CodeDoc/Delegate[@name="DeserializeDockContent"]/remarks/*'/>
			</remarks>
		</Method>
		<Method name="SetPaneIndex(DockPane, int)">
			<summary>Moves the specified <see cref="Fireball.Docking.DockPane" /> window to the
			specified position in the auto-hide tab strip.</summary>
			<param name="pane">The specified <see cref="Fireball.Docking.DockPane" /> window.</param>
			<param name="index">The zero-based index represents the new position in the auto-hide tab strip.</param>
		</Method>
		<Method name="SuspendLayout(bool)">
			<summary>Temporarily suspends the layout logic, optionally suspends the child windows.</summary>
			<param name="allWindows"><b>True</b> to suspend the layout logic of child windows, otherwise, <b>false</b>.</param>
		</Method>
		<Method name="ResumeLayout(bool, bool)">
			<summary>Resumes normal layout logic. Optionally forces an immediate layout of pending 
			layout requests, and resumes normal layout logic for child windows.</summary>
			<param name="performLayout"><b>true</b> to execute pending layout requests; otherwise, <b>false</b>.</param>
			<param name="allWindows"><b>True</b> to suspend the layout logic of child windows, otherwise, <b>false</b>.</param>
		</Method>
		<Event name="ActiveContentChanged">
			<summary>Occurs when the <see cref="Fireball.Docking.DockPanel.ActiveContent"/> property changed.</summary>
		</Event>
		<Event name="ActiveDocumentChanged">
			<summary>Occurs when the <see cref="Fireball.Docking.DockPanel.ActiveDocument"/> property changed.</summary>
		</Event>
		<Event name="ActivePaneChanged">
			<summary>Occurs when the <see cref="Fireball.Docking.DockPanel.ActivePane"/> property changed.</summary>
		</Event>
		<Event name="ContentAdded">
			<summary>Occurs when a <see cref="Fireball.Docking.IDockContent"/> form added to <see cref="Fireball.Docking.DockPanel.Contents"/> collection.</summary>
		</Event>
		<Event name="ContentRemoved">
			<summary>Occurs when a <see cref="Fireball.Docking.IDockContent"/> form removed from <see cref="Fireball.Docking.DockPanel.Contents"/> collection.</summary>
		</Event>
	</Class>
</CodeDoc>